<?php
/**
 * DouPHP小程序模块
 * Author: cuihaifeng  qq 366131726 微信同号
 * 网址：www.zbxingke.com www.0533hf.com
 */

/**
 * 获取分类信息
 * @param $module
 * @param $cat_id
 */
function get_cate_info($module,$cat_id){
    return pdo_get($module,array('cat_id'=>$cat_id));
}

/**
 * 获取文章、产品、案例等
 * @param $module
 * @param $id
 */
function get_item($module,$id){
   return pdo_get($module,array('id'=>$id));
}

/**
 * 获取用户信息
 * @param $id
 * @return bool
 */
function get_user($id){
    return pdo_get('user',array('user_id'=>$id));
}



/**
 * +----------------------------------------------------------
 * 生成唯一的订单编号
 * +----------------------------------------------------------
 */
function create_order_sn() {
    // 随机生成订单号
    $order_sn = date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);

    if ($GLOBALS['dou']->get_one("SELECT id FROM " . $GLOBALS['dou']->table('order') . " WHERE order_sn = '$order_sn'")) {
        create_order_sn();
    }

    return $order_sn;
}



//将xml格式转换成数组
function xmlToArray($xml) {

    //禁止引用外部xml实体
    libxml_disable_entity_loader(true);

    $xmlstring = simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);

    $val = json_decode(json_encode($xmlstring), true);

    return $val;
}

/**
 * 支付签名
 * @param $option
 * @param $partnerKey
 * @return string
 */
function getPaySign($option, $partnerKey) {
    ksort($option);
    $buff = '';
    foreach ($option as $k => $v) {
        $buff .= "{$k}={$v}&";
    }
    return strtoupper(md5("{$buff}key={$partnerKey}"));
}

/**
 * 返回XML消息
 * @param array $data
 * @param bool $isReturn
 * @return mixed
 */
function replyXml(array $data, $isReturn = false) {
        $xml = arr2xml($data);
if ($isReturn) {
    return $xml;
}
ob_clean();
exit($xml);
}

/**
 * 数组转html
 * @param $data
 * @param string $root
 * @param string $item
 * @param string $id
 * @return string
 */
function arr2xml($data, $root = 'xml', $item = 'item', $id = 'id') {
    return "<{$root}>" . _data_to_xml($data, $item, $id) . "</{$root}>";
}

 function _data_to_xml($data, $item = 'item', $id = 'id', $content = '') {
    foreach ($data as $key => $val) {
        is_numeric($key) && $key = "{$item} {$id}=\"{$key}\"";
        $content .= "<{$key}>";
        if (is_array($val) || is_object($val)) {
            $content .= _data_to_xml($val);
        } elseif (is_numeric($val)) {
            $content .= $val;
        } else {
            $content .= '<![CDATA[' . preg_replace("/[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]/", '', $val) . ']]>';
        }
        list($_key,) = explode(' ', $key . ' ');
        $content .= "</$_key>";
    }
    return $content;
}


